1. Field
One embodiment of the present invention relates to a program granularity adjustment technique suitable for, e.g., a computer that mounts a CPU including a plurality of CPU cores or a computer that mounts a plurality of CPUs.
2. Description of the Related Art
In recent years, various types of computers (personal computers) for private use, such as notebook type computers and desktop type computers have prevailed. For such computers, a demand for the information processing capability has been increasing close to the limit of the CPU performance improvement. For example, there is a demand for playing back high resolution moving image data by software.
To meet such demand, for example, computers which mount a plurality of CPUs or, in these days, a CPU including a plurality of CPU cores have become available. These computers shorten the turnaround time and improve the performance by processing programs in parallel. Various mechanisms for efficiently processing programs in parallel have been proposed (see, e.g., Jpn. Pat. Appln. KOKAI Publication No. 2005-258920).
One parallel program processing technique comprises two components, i.e., runtime processing including a scheduler which assigns processing units in the program to execution units (when a computer mounts a plurality of CPUs, the scheduler assigns the processing units to the CPUs, and when a computer mounts a CPU including a plurality of CPU cores, the scheduler assigns the processing units to the CPU cores), and a processing unit processed on each execution unit. Note that the size of the processing unit is referred to as the granularity of parallel processing. It is possible to increase the opportunity of parallelization by decreasing the granularity, thereby improving the parallel performance.
On the other hand, if the granularity of parallel processing is too small, the number of operations of the scheduler becomes large and it therefore becomes impossible to obtain adequate performance due to too high an overhead.